Amazon Route 53でGeo DNS(Geo Routing)を構成する
ども、大瀧です。
先日のRoute 53のアップデートでできるようになった新機能、Geo DNSを実現するGeo Routingをご紹介します。
Geo Routing(Geo DNS)とは
Geo DNSは、地理データベースと接続元IPアドレスを照合しクライアントに地域ごとの異なるレコードを返すDNSの構成です。Route 53では、Geo DNS相当の仕組みとして、Geo Routing機能を設定することが出来ます。
従来、Route 53にはLatency Routingというクライアント最寄りのリージョンのレコードを返す機能がありましたが、今回のGeo Routingはインターネットのネットワーク構成に拠らない、精度の高いレコードの区分けが特徴です。また、Latency Routingはリージョン単位での振り分けでしたが、Geo Routingは国や州などより細かい振り分けが可能です。
設定方法
地理情報(Geolocation)として設定できるのは、以下4通りがあります。
- 大陸/地域(アジア、ヨーロッパなど)
- 国(日本、中国など)
- 州(米国のみ、カリフォルニア州など)
- デフォルト(地理データベースに該当しないIPアドレスの場合、該当する地理情報のレコードが未定義の場合)
なお、クライアントの地理情報の照合結果として該当するGeolocationレコードが無い場合、応答なし(ANSWERセクションが空)のレスポンスが返ります。応答なしだとサービスが提供できないため、地域限定サービスなど特別な要件で無い限りはデフォルトのGeolocationレコードを登録しましょう。
先に登録結果を提示しておきます。以下のように同一のNameのレコードを複数登録します。[Geolocation]列が*のものがデフォルトです。
Geolocationレコードの登録は、通常のレコードと同様にNameとValueを入れつつ、[Routing Policy]のドロップダウンで「Geolocation」を選択します。
すると、[Location]でデフォルト、地域(Continents)、国(Countries)が選択できるようになっています。無数にリストされるので、検索ボックスに一部キーワードを入力し、絞り込みを併用すると良いでしょう。
米国の州を選択する場合は、[Location]で「United States」を選択すると[Sublocation]のドロップダウンが現れ、州を選択できます。
[Set ID]は、他のレコードと重複しない一意な任意の文字列でOKです。[Create]ボタンをクリックして登録完了です!
Tips
デフォルトとその他のレコードは同じ値が設定できる
例えば、「United States向けのIPアドレスを他の地域のデフォルトにしたい」、という場合はUnited StatesのGeolocationレコードとデフォルトのレコードで同じアドレスを設定することが可能です。そもそもUnited Statesのレコードを作らずにデフォルトを向ければいいじゃないかと言うのももっともですが、United Statesのレコードを明示したいケースもあるかと思います。
S3 Static Website Hostingとの併用は不可
今回のGeolocationレコードに限らない話ですが、複数のGeolocationレコードで複数のS3バケットでStatic Website Hostingという構成は組めません。これは、「S3 Static Website Hostingのバケット名はドメイン名と同一でなければならない」というStatic Website Hostingの制約によるものです。
複数のGeolocationレコードのうち、1つだけStatic Website Hosting、その他はEC2やELBなどという構成はOKです。デフォルトはStatic Website Hostingの静的な情報提供、特定の地域のみELB+EC2+RDSで動的なWebサービスの提供なんて組み合わせはアリかもしれませんね。
まとめ
Route 53のGeo DNS機能、Geo Routingについて紹介しました。CloudFrontのGeo Restriction機能など似たような性質の機能もあったりするので、それぞれの動きをきちんと理解して上手く使い分けたいところですね!